/**
 * ESLint 配置文件 (ESLint Configuration File)
 * 
 * 功能说明：
 * - 配置代码质量检查规则
 * - 设置JavaScript和JSX语法检查
 * - 定义代码风格和最佳实践
 * - 提供开发时的实时错误提示
 * - 支持自动修复功能
 * 
 * 检查范围：
 * - JavaScript文件 (.js, .mjs, .cjs)
 * - JSX文件 (.jsx)
 * - React组件和Hooks
 * - 浏览器环境API
 * 
 * 规则特性：
 * - 语法错误检查
 * - 代码风格统一
 * - 潜在问题检测
 * - React最佳实践
 * - 性能优化建议
 * 
 * 使用方式：
 * - 开发时实时检查
 * - 提交前代码检查
 * - 自动修复可修复问题
 * - CI/CD集成检查
 */

import js from "@eslint/js";
import globals from "globals";
import pluginReact from "eslint-plugin-react";
import { defineConfig } from "eslint/config";

/**
 * ESLint配置导出
 * 
 * 配置结构：
 * - 基础JavaScript规则
 * - 浏览器环境全局变量
 * - React特定规则
 * - 自定义规则覆盖
 */
export default defineConfig([
  /**
   * 基础JavaScript规则配置
   * 
   * 功能：
   * - 应用推荐的JavaScript规则
   * - 检查语法错误和潜在问题
   * - 提供代码质量建议
   */
  { 
    files: ["**/*.{js,mjs,cjs,jsx}"], 
    plugins: { js }, 
    extends: ["js/recommended"] 
  },
  
  /**
   * 浏览器环境配置
   * 
   * 功能：
   * - 定义浏览器全局变量
   * - 支持DOM API使用
   * - 避免浏览器API误报
   */
  { 
    files: ["**/*.{js,mjs,cjs,jsx}"], 
    languageOptions: { globals: globals.browser } 
  },
  
  /**
   * React规则配置
   * 
   * 功能：
   * - React组件最佳实践
   * - JSX语法检查
   * - Hooks使用规则
   * - 性能优化建议
   */
  pluginReact.configs.flat.recommended,
]);
